package pe.tnova.generic.structure.project.springmvc.util;

public class ConstantesTNOVA {

	public static String RECURSOS_CORE_DAO = "Recursos Core DAO - Spring MVC";

	public static String SOURCE_JAVA = "src/main/java";
	public static String RESOURCES = "src/main/resources";
	public static String SOURCE_TEST_JAVA = "src/test/java";
	public static String TEST_RESOURCES = "src/test/resources";
	public static String META_INF = "META-INF";
	public static String CARP_SPRING = "spring";

	public static String CARPETA_DOMINIO = "dominio";
	public static String CARPETA_UTIL = "util";

	public static String CARPETA_DAO = "dao";
	public static String CARPETA_DAO_IMPL = "dao/impl";

	public static String CARPETA_DAO_BASE = "daobase";
	public static String CARPETA_DAO_BASE_IMPL = "daobase/impl";

	public static String CARPETA_SERVICE = "service";
	public static String CARPETA_SERVICE_IMPL = "service/impl";

	public static String CARPETA_SERVICE_MNT = "service/mnt";
	public static String CARPETA_SERVICE_MNT_IMPL = "service/mnt/impl";

	public static String CLASS_ENTIDAD = "Entidad";

	public static String CLASS_IDAO = "IDAO";
	public static String CLASS_DAO = "DAO";
	public static String CLASS_DAO_IMPL = "DAOImpl";
	public static String CLASS_DAO_BASE = "DAOBase";
	public static String CLASS_DAO_BASE_IMPL = "DAOBaseImpl";
	public static String CLASS_SERVICE = "Service";
	public static String CLASS_SERVICE_IMPL = "ServiceImpl";
	public static String CLASS_SERVICE_MNT = "MantenimientoService";
	public static String CLASS_SERVICE_MNT_IMPL = "MantenimientoServiceImpl";

	public static String CLASS_DAO_BASE_UTIL = "DAOBaseUtil";

	public static String PACK_DAO = "dao";
	public static String PACK_DAO_IMPL = "dao.impl";

	public static String PACK_DAO_BASE = "daobase";
	public static String PACK_DAO_BASE_IMPL = "daobase.impl";

	public static String PACK_DOMINIO = "dominio";

	public static String PACK_SERVICE = "service";
	public static String PACK_SERVICE_IMPL = "service.impl";

	public static String PACK_SERVICE_MNT = "service.mnt";
	public static String PACK_SERVICE_MNT_IMPL = "service.mnt.impl";

	/**
	 * Suma
	 */
	public static final String SUMA = "+";

	/**
	 * Suma
	 */
	public static final String IGUAL = "=";
	/**
	 * Salto de Linea
	 */
	public static final String EN = "\n";
	/**
	 * Tabular
	 */
	public static final String SPACE = " ";
	/**
	 * Tabular
	 */
	public static final String ET = "\t";
	/**
	 * Slash
	 */
	public static final String SLASH = "/";
	/**
	 * Dont
	 */
	public static final String DONT = ".";
	/**
	 * Dont y coma
	 */
	public static final String DONT_COMA = ";";
	/**
	 * Coma(,)
	 */
	public static final String COMA = ",";
	/**
	 * Underlin
	 */
	public static final String UNDERLINE = "_";
	/**
	 * Nombre Entidad
	 */
	public static final String STR_ENTIDAD = "STR_ENTIDAD";

	/**
	 * SQL_QUERY
	 */
	public static final String SQL_QUERY = "SQL_QUERY";
	/**
	 * SQL_QUERY_COUNT
	 */
	public static final String SQL_QUERY_COUNT = "SQL_QUERY_COUNT";
	/**
	 * String de la entidad y campos
	 */
	public static final String STR = "STR";
	/**
	 * String de la entidad y campos
	 */
	public static final String CAMPO = "CAMPO";
	/**
	 * String de la entidad y campos
	 */
	public static final String STR_CAMPO = "STR_CAMPO";
	/**
	 * PARENTESIS IZQUIERDA
	 */
	public static final String PAREN_IZ = "\" ( \"";
	/**
	 * PARENTESIS DERECHA
	 */
	public static final String PAREN_DE = "\" ) \"";
	/**
	 * new
	 */
	public static final String NEW = "\" new \"";
	/**
	 * IN
	 */
	public static String SQL_IN = "DAOUtil.SQL_IN";
	/**
	 * AND
	 */
	public static String SQL_AND = "DAOUtil.SQL_AND";
	/**
	 * OR
	 */
	public static String SQL_OR = "DAOUtil.SQL_OR";
	/**
	 * Where
	 */
	public static String SQL_WHERE = "DAOUtil.SQL_WHERE";
	/**
	 * p
	 */
	public static String SQL_SE = "DAOUtil.SQL_SE";
	/**
	 * p.
	 */
	public static String SQL_SEA = "DAOUtil.SQL_SEA";
	/**
	 * :
	 */
	public static String SQL_FILTRO = "DAOUtil.SQL_FILTRO";
	/**
	 * menos
	 */
	public static String SQL_MENOS = "DAOUtil.SQL_MENOS";
	/**
	 * mas
	 */
	public static String SQL_MAS = "DAOUtil.SQL_MAS";
	/**
	 * select
	 */
	public static String SQL_SELECT = "DAOUtil.SQL_SELECT";
	/**
	 * from
	 */
	public static String SQL_FROM = "DAOUtil.SQL_FROM";
	/**
	 * igual
	 */
	public static String SQL_EQ = "DAOUtil.SQL_EQ";
	/**
	 * count
	 */
	public static String SQL_COUNT = "DAOUtil.SQL_COUNT";
	/**
	 * like
	 */
	public static String SQL_LIKE = "DAOUtil.SQL_LIKE";
	/**
	 * desigual
	 */
	public static String SQL_EN = "DAOUtil.SQL_EN";
	/**
	 * package
	 */
	public static final String PACKAGE_SPACE = "package ";
	public static final String PERSISTENCE = "persistence.xml";
	public static final String SPRINT_CONECTION =  Config.getPropiedad("constante.conexion.base.datos.roperties");
	public static final String APP_CONTEXT_XML = Config.getPropiedad("constante.spring.aplication.context.xml");
	public static final String EXTENSION_TXT = ".txt";
	public static final String EXTENSION_JAVA = ".java";
	public static final String EXTENSION_XML = ".xml";

	public static final String SCRIPT_MYSQL = "mysql";
	public static final String SCRIPT_ORACLE = "oracle";
	public static final String SCRIPT_SQL_SERVER = "sqlserver";

	public static final String TYPE_ATRIBUTTE_STRING = "String";
	public static final String TYPE_ATRIBUTTE_BOOLEAN = "Boolean";
	public static final String TYPE_ATRIBUTTE_VBOOLEAN = "boolean";
	public static final String TYPE_ATRIBUTTE_DATE = "Date";
	public static final String TYPE_ATRIBUTTE_INTEGER = "Integer";
	public static final String TYPE_ATRIBUTTE_INT = "int";
	public static final String TYPE_ATRIBUTTE_CHARACTER = "Character";
	public static final String TYPE_ATRIBUTTE_CHAR = "char";
	public static final String TYPE_ATRIBUTTE_LONG = "Long";
	public static final String TYPE_ATRIBUTTE_VLONG = "long";
	public static final String TYPE_ATRIBUTTE_TYPE_LIST = "LIST";
	public static final String TYPE_ATRIBUTTE_OBJECT = "Object";
	public static final String[] TYPE_ATRIBUTTE_LIST = { 	TYPE_ATRIBUTTE_STRING, TYPE_ATRIBUTTE_BOOLEAN, TYPE_ATRIBUTTE_VBOOLEAN, 
															TYPE_ATRIBUTTE_DATE, TYPE_ATRIBUTTE_INTEGER, TYPE_ATRIBUTTE_INT, 
															TYPE_ATRIBUTTE_CHARACTER, TYPE_ATRIBUTTE_CHAR, TYPE_ATRIBUTTE_LONG, 
															TYPE_ATRIBUTTE_VLONG, TYPE_ATRIBUTTE_OBJECT };

	public static final String POM_DEPENDENCY_TNOVA_CORE = ET + "</dependency>" + EN + ET + ET + "<dependency> " + EN + ET + ET + ET + " <groupId>pe.tnova.core</groupId> " + EN
			+ ET + ET + ET + " <artifactId>TNOVA-Core</artifactId> " + EN + ET + ET + ET + " <version>1.0.0</version> " + EN + ET + ET + "</dependency>" + EN;

	public static final String POM_END_DEPENDENCY = "</dependency>";
	public static final String POM_END_DEPENDENCIES = "</dependencies>";

	public static final String APP_CONTEXT_XML_CONTEXT_COMPONENT_SCAN_INIT = "<context:component-scan base-package=\"";
	public static final String APP_CONTEXT_XML_CONTEXT_COMPONENT_SCAN_END = "\" ></context:component-scan>";

	public static final String TOKEN_FILE = "%";
	public static final String FILE_APP_CONTEXT_SPRING = "/pe/tnova/generic/structure/project/springmvc/UI/test-app-context.xml";
	public static final String FILE_PERSISTENCE = "/pe/tnova/generic/structure/project/springmvc/UI/persistence.xml";
	public static final String FILE_POM = "/pe/tnova/generic/structure/project/springmvc/UI/pom.txt";
	public static final String FILE_SPRING_PROPERTIES = "/pe/tnova/generic/structure/project/springmvc/UI/testspring.properties";
	public static final String TOKEN_DESCRIPCION = TOKEN_FILE + "DESCRIPCION" + TOKEN_FILE;
	public static final String TOKEN_PACK_CORE = TOKEN_FILE + "PACK_CORE" + TOKEN_FILE;
	public static final String TOKEN_NAME_PERSISNTECE = TOKEN_FILE + "NAME_PERSISNTECE" + TOKEN_FILE;
	public static final String TOKEN_DRIVE = TOKEN_FILE + "DRIVER" + TOKEN_FILE;
	public static final String TOKEN_CADENA_CONEXION = TOKEN_FILE + "CADENA_CONEXION" + TOKEN_FILE;
	public static final String TOKEN_USUARIO = TOKEN_FILE + "USUARIO" + TOKEN_FILE;
	public static final String TOKEN_PASSWORD = TOKEN_FILE + "PASSWORD" + TOKEN_FILE;

	public static final String[] ANOTACIONES_PERMITIDAS = Config.getPropiedad("entidad.anotaciones.jpa.permitidas").split(",");

	public static final String ANOTACION_VALUE_CBO = Config.getPropiedad("entidad.custom.anotaciones.cbo.value");
	public static final String ANOTACION_VALUE_CBO_CAMPOCBO = Config.getPropiedad("entidad.custom.anotaciones.cbo.value.campoCbo");
	public static final String ANOTACION_VALUE_CBO_DEFAULTORDERBY = Config.getPropiedad("entidad.custom.anotaciones.cbo.value.defaultorderBy");
	public static final String ANOTACION_VALUE_CBO_NA = Config.getPropiedad("entidad.custom.anotaciones.cbo.value.n.a");
	
	public static final String ANOTACIONES_DEPENDENCIA_MANYTOONE = Config.getPropiedad("entidad.anotaciones.jpa.annotaciones.dependencia.ManyToOne");
	public static final String ANOTACIONES_DEPENDENCIA_ONETOMANY = Config.getPropiedad("entidad.anotaciones.jpa.annotaciones.dependencia.OneToMany");
	public static final String ANOTACIONES_DEPENDENCIA_ONETOONE = Config.getPropiedad("entidad.anotaciones.jpa.annotaciones.dependencia.OneToOne");
	public static final String ANOTACIONES_DEPENDENCIA_ManyToMany = Config.getPropiedad("entidad.anotaciones.jpa.annotaciones.dependencia.ManyToMany");

	public static final String LAZY = Config.getPropiedad("entidad.anotaciones.jpa.annotaciones.dependencia.lazy");
	public static final String EAGER = Config.getPropiedad("entidad.anotaciones.jpa.annotaciones.dependencia.eager");
	
	/**
	 * Explicacion de los Join de HQL and JPQL
	 * http://docs.jboss.org/hibernate/orm/4.2/devguide/en-US/html/ch11.html#d5e2836
	 */
	public static final String JOIN = " JOIN ";//" join "
	public static final String LEFT_JOIN  = " LEFT_JOIN  ";//" left join  "
	public static final String LEFT_OUTER_JOIN  = " LEFT_OUTER_JOIN  ";//" left outer join  "
	public static final String INNER_JOIN  = " INNER_JOIN ";	//  " inner join ";	
	public static final String LEFT_JOIN_FETCH = " LEFT_JOIN_FETCH ";// "" LEFT JOIN FETCH "; //@ManyToOne
	public static final String DISTINCT  = " DISTINCT ";//" DISTINCT ";
	public static final String BETWEEN  = " BETWEEN ";//" BETWEEN $0$ AND $1$ ";
		 
	private ConstantesTNOVA() {
	}

}
